/**
 * 日期工具类封装方法
 * @author: Merjiezo
 * @since: 2017-05-26
 */

export const previousDate = function (date, format) {
  let timeStep = isNaN( + date)
    ? new Date().getTime()
    : new Date().getTime() - 1000 * 3600 * 24 * date
  return fecha.format(timeStep, format || 'YYYY-MM-DD')
}

export const previousRangeDate  = function (date, format) {
  return previousDate(date, format) + ',' + fecha.format(new Date(), format || 'YYYY-MM-DD')
}

//date1, date2为字符串YYYY-MM-DD
export const phaseDate = function (date1, date2) {
  let date1s = date1 ? new Date(date1.split("-")[0], date1.split("-")[1]-1, date1.split("-")[2]) : new Date()
  let date2s = date2 ? new Date(date2.split("-")[0], date2.split("-")[1]-1, date2.split("-")[2]) : new Date()
  let phase = date1s.getTime() - date2s.getTime()
  if(phase < 0) {
    phase = -phase
  }
  return phase / (1000 * 3600 * 24)
}



/**
 * @func getMonthInfo - desc:  得到某年份的具体某月份信息
 * @param { string } y - 当前年份
 * @param { string } m - 当前月份（已经是new Date的月份基础上大于1了）
 * @return { array } info - 返回一个info数组,年月日周几等信息;
 * @var { number } fdWeek - 该月第一天是周几
 * @var { number } ldWeek - 该月最后一天是周几
 * @var { number } lastDay - 当前月的最后一天
 * @var { number } lmDays - 上一个月的最后一天
 * @var { number } lmYear - 上一个月的年份
 * @var { number } lmMonth - 上一个月的月份
 * 通过获取m月的最后一天，得出m月共有多少天,并补全月份数据,只展示六周的日期
*/
export const  getMonthInfo = function (y,m){
  let info = []
  let   fdWeek = new Date(y,m-1,1).getDay()/* 得到的日期是"m"月的前一个 月的最后一天 */
  let   ldWeek = new Date(y,m,0).getDay() /* 得到的日期是"m"月的后一个 月的第一天 */
  let   lastDay = new Date(y,m,0).getDate()
  let  lmDays =  new Date(y,m-1,0).getDate()
  let  lmYear = new Date(y,m-1,0).getFullYear()
  let   lmMonth = new Date(y,m-1,0).getMonth()+1
  let   nmYear = new Date(y,m+1,0).getFullYear()
  let  nmMonth = new Date(y,m+1,0).getMonth()+1
  for(var i = lmDays, len = lmDays + (0-fdWeek); i>len; i--){
      info.unshift({
          year: lmYear,
          month: lmMonth, /* 上个月 */
          day: i,
          ishowBag:false,
          week: new Date(y,m-2,i).getDay(),
          timeFile:(new Date(`${lmYear}-${lmMonth<10?'0'+lmMonth:lmMonth}-${i<10?'0'+i:i}`)).getTime()
      });  
  }
  for(var i = 1; i<=lastDay; i++){
      info.push({
          year: y,
          month: m, /* 本月 */
          day: i,
          ishowBag:false,
          week: new Date(y,m-1,i).getDay(),
          timeFile:(new Date(`${y}-${m<10?'0'+m:m}-${i<10?'0'+i:i}`)).getTime()
      });
  }
  for(var i = 1,len = 42-info.length; i<=len; i++){
      info.push({
          year: nmYear,
          month: nmMonth, /* 下个月 */
          day: i,
          ishowBag:false,
          week: new Date(y,m,i).getDay(),
          timeFile:(new Date(`${nmYear}-${nmMonth<10?'0'+nmMonth:nmMonth}-${i<10?'0'+i:i}`)).getTime()
      });
  }
  return info;
};